package com.guigu.pojo.stock;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 
 * </p>
 *
 * @author Mr.Zhang
 * @since 2024-12-06
 */
@Data
@TableName("S_GATHER")
public class SGather implements Serializable {

    private static final long serialVersionUID=1L;

    //@apiModelProperty(value = "序号，唯一标识入库记录，自增长")
      @TableId(value = "ID", type = IdType.AUTO)
    private Integer id;

    //@apiModelProperty(value = "入库单编号，不可为空，唯一标识入库单，便于入库业务管理与追溯")
    @TableField("GATHER_ID")
    private String gatherId;

    //@apiModelProperty(value = "入库人姓名，可空，记录入库操作人员，明确责任归属")
    @TableField("STORER")
    private String storer;

    //@apiModelProperty(value = "入库理由代码，如生产入库、库存初始等，不可为空，规范入库原因分类，便于统计分析")
    @TableField("REASON")
    private String reason;

    //@apiModelProperty(value = "入库详细理由，可空，补充入库原因细节，完善业务记录")
    @TableField("REASONEXACT")
    private String reasonexact;

    //@apiModelProperty(value = "总件数，可空，统计入库商品总数量，核算库存增量")
    @TableField("AMOUNT_SUM")
    private BigDecimal amountSum;

    //@apiModelProperty(value = "总金额，可空，计算入库商品总价值，财务核算关键")
    @TableField("COST_PRICE_SUM")
    private BigDecimal costPriceSum;

    //@apiModelProperty(value = "确认入库总件数，可空，记录实际确认入库数量，精准库存调整")
    @TableField("GATHERED_AMOUNT_SUM")
    private BigDecimal gatheredAmountSum;

    //@apiModelProperty(value = "备注信息，可空，记录其他入库相关信息，如特殊要求、备注事项等")
    @TableField("REMARK")
    private String remark;

    //@apiModelProperty(value = "登记人姓名，可空，登记入库业务人员，追溯操作轨迹")
    @TableField("REGISTER")
    private String register;

    //@apiModelProperty(value = "登记时间，可空，记录入库登记时间，监控业务时效")
    @TableField("REGISTER_TIME")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date registerTime;

    //@apiModelProperty(value = "复核人姓名，可空，复核入库信息人员，保障数据准确可靠")
    @TableField("CHECKER")
    private String checker;

    //@apiModelProperty(value = "复核时间，可空，记录复核时间点，确保业务流程规范")
    @TableField("CHECK_TIME")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date checkTime;

    //@apiModelProperty(value = "审核标志，如等待审核0、审核通过1、审核不通过2，不可为空，掌控入库审核进度")
    @TableField("CHECK_TAG")
    private String checkTag;

    //@apiModelProperty(value = "调度人姓名，可空，协调入库调度人员，优化业务流程")
    @TableField("ATTEMPER")
    private String attemper;

    //@apiModelProperty(value = "调度时间，可空，记录调度操作时间，提升业务协同性")
    @TableField("ATTEMPER_TIME")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
    private Date attemperTime;

    //@apiModelProperty(value = "入库标志，如已登记、已调度，不可为空，跟踪库存状态变更")
    @TableField("GATHER_TAG")
    private String gatherTag;

    @TableField("GATHER_CHECK_TAG")
    private String gatherCheckTag;
}
